#pragma once

#include <set>

class Range
{
public: 
	int min_value;
    int max_value;
	CString link;
	Range(void) { }
	~Range(void) { }
	
	bool operator < (const Range & rhs) const {  return max_value < rhs.max_value;  }
	Range(int v1 , int v2, CString str) : min_value(v1) , max_value(v2), link(str) {}
	Range(int v1 , int v2) : min_value(v1) , max_value(v2), link("") { }
};

class FootnoteSet
{
public:

	int verse;
	int fn_number;
	CString fn_label;
	CString fn_text;

	FootnoteSet(void) { }
	~FootnoteSet(void) { }


};

class CRangeSet
{
public:
	BOOL FromPos(int pos, int& l, int& u, CString& text);  // get the string and bounds 
		                                                  // corresponding to a particular position
	void Add(int low, int high, CString text) {my_set.insert(Range(low, high, text)) ; }
	void Clear() { my_set.clear(); }  // clears the set

	CRangeSet(void);
	~CRangeSet(void);

private:
	std::set<Range> my_set;
	std::set<Range>::iterator it;
};
